<?php
class PessoaDAO{
	
	private static $instanciaUnica;
	private $conexao;
	
	private function __construct(){
		$this->conexao = Conexao::getConexao();
	}
	public static function getInstancia(){
		if (!isset(self::$instanciaUnica)){
			self::$instanciaUnica = new PessoaDAO();
		}
		return self::$instanciaUnica;
	}
	
	public function listaPessoa(){
		$lista	= Array();
		$rs		= new QueryMySql();
		$rs->setQuery("select * from tbl_pessoa");
		while ($rs->getrow()){
			$pessoa = new Pessoa();
			$pessoa->setCodPessoa($rs->field("codPessoa"));
			$pessoa->setNomePessoa($rs->field("nomePessoa"));
			$pessoa->setEmail($rs->field("email"));
			$pessoa->setTelFixo($rs->field("telFixo"));
			$pessoa->setTelCel($rs->field("telCel"));
			$pessoa->setLogradouro($rs->field("logradouro"));
			$pessoa->setBairro($rs->field("bairro"));
			$pessoa->setCidade($rs->field("cidade"));
			$pessoa->setUf($rs->field("uf"));
			$lista[] = $pessoa;
		}
		return $lista;
	}
	public function insertPessoa(Pessoa $pessoa){
		$sql = new UpdateSQL();
		$sql->setTable("tbl_pessoa");
		$sql->addField("nomePessoa", $pessoa->getNomePessoa(), "String");
		$sql->addField("email", $pessoa->getEmail(), "String");
		$sql->addField("telFixo", $pessoa->getTelFixo(), "String");
		$sql->addField("telCel", $pessoa->getTelCel(), "String");
		$sql->addField("logradouro", $pessoa->getLogradouro(), "String");
		$sql->addField("bairro", $pessoa->getBairro(), "String");
		$sql->addField("cidade", $pessoa->getCidade(), "String");
		$sql->addField("uf", $pessoa->getUf(), "String");
		$sql->setAction("INSERT");
		return $this->conexao->execute($sql->getSQL());
	}
	public function updatePessoa(Pessoa $pessoa){
		$sql = new UpdateSQL();
		$sql->setTable("tbl_pessoa");
		$sql->setKey("codPessoa", $pessoa->getCodPessoa(), "Number");
		$sql->addField("nomePessoa", $pessoa->getNomePessoa(), "String");
		$sql->addField("email", $pessoa->getEmail(), "String");
		$sql->addField("telFixo", $pessoa->getTelFixo(), "String");
		$sql->addField("telCel", $pessoa->getTelCel(), "String");
		$sql->addField("logradouro", $pessoa->getLogradouro(), "String");
		$sql->addField("bairro", $pessoa->getBairro(), "String");
		$sql->addField("cidade", $pessoa->getCidade(), "String");
		$sql->addField("uf", $pessoa->getUf(), "String");
		//$sql->addField("codInstituicao", $pessoa->getCodInstituicao(), "Number");
		$sql->setAction("UPDATE");
		//return $pessoa->getCodPessoa();
		return $this->conexao->execute($sql->getSQL());
	}
	public function deletePessoa(Pessoa $pessoa){
		$sql = new UpdateSQL();
		$sql->setTable("tbl_pessoa");
		$sql->setKey("codPessoa", $pessoa->getCodPessoa(), "Number");
		$sql->setAction("DELETE");
		//return "teste";
		return $this->conexao->executeUpdate($sql->getSQL());
	}
}
?>